﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace  RzCorportativo.Views.Consulta
{
    public partial class Funcionarios : BasePage
    {
        protected RzCorportativo.Lib.Medico GetModel(object datacontext)
        {
            return (datacontext is RzCorportativo.Lib.Medico ? datacontext as RzCorportativo.Lib.Medico : new RzCorportativo.Lib.Medico());
        }

        protected RzCorportativo.Lib.Usuario GetPessoa(object datacontext)
        {
            return this.GetModel(datacontext).Pessoa ?? new RzCorportativo.Lib.Usuario();
        }

        private object DataSource
        {
            get { return this.Session["$Funcionario$DataSource"]; }
            set { this.Session["$Funcionario$DataSource"] = value; }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if ("s".Equals(Session["op"]))
            {
                Session.Remove("op");
                Alert alert = new Alert("erroGeral", this);
                alert.AlertType = AlertType.Success;
                alert.Add("sucess", "Item salvo com sucesso!");
                alert.Show();
            }
            this.ListaMedicos.SetSystemPageSize();
            if (this.IsPostBack)
                return;
            this.ListaMedicos.DataSource = this.DataSource = RzCorportativo.Lib.Medico.Listar(new RzCorportativo.Lib.Medico());
            this.ListaMedicos.DataBind();
            var lista = RzCorportativo.Lib.Especialidade.Listar(new RzCorportativo.Lib.Especialidade());
            lista.Insert(0, new RzCorportativo.Lib.Especialidade() { EspecialidadeId = 0, Descricao = "Especialidade" });
            this.Especialidade.DataSource = lista;
            this.Especialidade.DataTextField = "Descricao";
            this.Especialidade.DataValueField = "EspecialidadeId";
            this.Especialidade.DataBind();
        }

        protected void ListaMedicos_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {

        }

        protected void ListaMedicos_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
        {
            var lista = this.DataSource as List<RzCorportativo.Lib.Medico>;
            if (lista == null) 
                return;
            var item = lista[(this.ListaMedicos.PageSize * this.ListaMedicos.PageIndex) + e.NewSelectedIndex];//this.ListaMedicos.Rows[(this.ListaMedicos.PageSize + this.ListaMedicos.PageIndex) + e.NewSelectedIndex].FindControl("MedicoId") as TextBox;
            if (item == null)
                return;
            this.Response.Redirect(EFramework.Web.UrlBase.UrlPadrao + "Views/Cadastros/Funcionarios.aspx?funcionario=" + item.MedicoId);//(item as TextBox).Text);
        }

        protected void buscar_Click(object sender, EventArgs e)
        {
            RzCorportativo.Lib.Medico medico = new RzCorportativo.Lib.Medico();
            medico.Pessoa.Nome = this.Nome.Text;
            medico.Pessoa.Cpf = EFramework.Web.Configuration.MaskConfiguration.RemoveMask(CPF.Text, "cpfKeyDel");
            medico.CRM = this.CRM.Text;
            medico.Especialidade = EFramework.Web.TypeExtension.ShortExtension.Parse(this.Especialidade.SelectedValue, 0);
            this.ListaMedicos.DataSource = this.DataSource = RzCorportativo.Lib.Medico.Listar(medico);
            this.ListaMedicos.DataBind();           

        }

        protected void ListaMedicos_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            DataSource = DataSource == null ? RzCorportativo.Lib.Medico.Listar(new RzCorportativo.Lib.Medico()) : DataSource;
            this.ListaMedicos.SetPage(e.NewPageIndex, DataSource);
        }
    }
}